package cn.com.starbucks.common.util;

import lombok.extern.slf4j.Slf4j;

/**
 * 雪花算法
 * @author xch
 * @data 2021/7/22 12:23
 */
@Slf4j
public class SnowflakeUtil {

    /**
     * 雪花算法获取一个id
     */
    public static String getId() {
        try {
            SnowflakeIdWorker snowflakeIdWorker = SnowflakeIdWorker.getInstance();
            String idStr = String.valueOf(snowflakeIdWorker.nextId());
            // 想要后面的15位 （为了防止第一位是0 只截取14位  然后前面拼接“1”）
            Long id = Long.parseLong("1" + idStr.substring(idStr.length() - 14));
            return id.toString();
        } catch (Exception e) {
            log.error("Get id failure");
            throw new NullPointerException("Get id failure");
        }
    }

}
